//
//  LSZEmoticonCollectionViewCell.swift
//  醒浪微博
//
//  Created by 雷顺哲 on 16/7/19.
//  Copyright © 2016年 LSZ. All rights reserved.
//

import UIKit

class LSZEmoticonCollectionViewCell: UICollectionViewCell {
    
//    存储20个表情的按钮
    private lazy var emoticonButtons: [UIButton] = [UIButton]()
//    绑定数据模型
    var emoticons: [LSZEmoticon]? {
        didSet{
            guard let ets = emoticons else{
                return
            }
//            隐藏全部按钮
            for value in emoticonButtons{
                value.hidden = true
            }
            
            for (i , value) in ets.enumerate() {
//                获取表情按钮
                let button = emoticonButtons[i]
//                设置数据显示按钮
                button.hidden = false

                if value.type == "0" {
                    button.setImage(UIImage(named: value.path!), forState: .Normal)
                    button.setTitle(nil, forState: .Normal)
                } else {
//                    设置emoji
                    button.setTitle((value.code! as NSString).emoji(), forState: .Normal)
                    button.setImage(nil, forState: .Normal)
                }
                
                
            }
            
        }
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        setUpUI()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    private func setUpUI(){
//        添加表情按钮
        for _ in 0 ..< 20 {
            let button = UIButton()
//            设置emoji表情的大小
            button.titleLabel?.font = UIFont.systemFontOfSize(34)
            contentView.addSubview(button)
            emoticonButtons.append(button)
        }
        
    }
    
//    使用layoutSubView给子控件赋值
    override func layoutSubviews() {
        super.layoutSubviews()
//        计算宽度
        let itemWidth = width / 7
//        计算高度
        let itemHeight = height / 3
        
        
        for (i , value) in emoticonButtons.enumerate() {
//            计算列的索引
            let col = i % 7
//            计算行的索引
            let row = i / 7
            
//            设置大小
            value.size = CGSize(width: itemWidth, height: itemHeight)
//            设置x坐标
            value.x = CGFloat(col) * itemWidth
//            设置y坐标
            value.y = CGFloat(row) * itemHeight
        }
        
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

}
